/**
 * 过滤字符串中的空白字符
 * 
 * @param {string} str - 输入字符串
 * @param {object} options - 配置选项
 * @param {string} options.mode - 过滤模式: 'all'(移除所有空白), 'trim'(仅移除首尾), 'collapse'(合并连续空白为单个空格)
 * @returns {string} - 过滤后的字符串
 */
export const filterWhitespace = (str, { mode = 'all' } = {}) => {
  if (typeof str !== 'string') {
    return '';
  }

  switch (mode) {
    case 'all':
      // 移除所有空白字符
      return str.replace(/\s+/g, '');
    case 'trim':
      // 仅移除首尾空白
      return str.trim();
    case 'collapse':
      // 移除首尾空白并将连续空白字符替换为单个空格
      return str.trim().replace(/\s+/g, ' ');
    default:
      return str;
  }
}